package com.uade.tp.view;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.WindowConstants;

import com.uade.tp.controlador.Delivery;
import com.uade.tp.negocio.view.ProductoView;
import com.uade.tp.negocio.view.SeccionView;


/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class AgregarProductoSeccion extends javax.swing.JFrame {
	private JComboBox jComboBoxSecciones;
	private JTextField stockText;
	private JButton cancelar;
	private JButton agregarBtn;
	private JLabel stockLbl;
	private JLabel productosLbl;
	private JComboBox jComboBoxProductos;
	private JLabel seccionesLbl;
	private static AgregarProductoSeccion instancia;

	public static AgregarProductoSeccion getInstancia() {
		if(instancia == null) {
			instancia = new AgregarProductoSeccion();
		}
		instancia.setVisible(true);
		return instancia;
	}
	
	private AgregarProductoSeccion() {
		super();
		initGUI();
	}
	
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setLayout(null);
			{
				ComboBoxModel jComboBoxSeccionesModel = 
						new DefaultComboBoxModel(this.cargarSecciones());
				jComboBoxSecciones = new JComboBox();
				getContentPane().add(jComboBoxSecciones);
				jComboBoxSecciones.setModel(jComboBoxSeccionesModel);
				jComboBoxSecciones.setBounds(147, 34, 167, 25);
				
			}
			{
				seccionesLbl = new JLabel();
				getContentPane().add(seccionesLbl);
				seccionesLbl.setText("Secciones: ");
				seccionesLbl.setBounds(46, 37, 83, 16);
			}
			{
				ComboBoxModel jComboBoxProductosModel = 
						new DefaultComboBoxModel(this.cargarProductos());
				jComboBoxProductos = new JComboBox();
				getContentPane().add(jComboBoxProductos);
				jComboBoxProductos.setModel(jComboBoxProductosModel);
				jComboBoxProductos.setBounds(147, 78, 167, 23);
			}
			{
				productosLbl = new JLabel();
				getContentPane().add(productosLbl);
				productosLbl.setText("Productos: ");
				productosLbl.setBounds(46, 85, 78, 16);
			}
			{
				stockLbl = new JLabel();
				getContentPane().add(stockLbl);
				stockLbl.setText("Stock:");
				stockLbl.setBounds(46, 137, 58, 19);
			}
			{
				stockText = new JTextField();
				getContentPane().add(stockText);
				stockText.setBounds(152, 134, 44, 27);
			}
			{
				agregarBtn = new JButton();
				getContentPane().add(agregarBtn);
				agregarBtn.setText("Agregar");
				agregarBtn.setBounds(106, 221, 107, 30);
				agregarBtn.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						
						try{
						int stockInteger = Integer.parseInt(stockText.getText());
						System.out.println("agregarBtn.actionPerformed, event="+evt);
					
							Delivery.getInstancia().agregarProductoSeccion(
									((SeccionView)jComboBoxSecciones.getSelectedItem()).getNombre(), 
									((ProductoView)jComboBoxProductos.getSelectedItem()).getNombre(), 
									stockInteger
											);
						
						
						JOptionPane.showMessageDialog(null, "Stock modificado con exito");
					} catch(NumberFormatException e) {
						JOptionPane.showMessageDialog(null, "Stock debe contener un valor");
					}catch (Exception e) {
						JOptionPane.showMessageDialog(null, e.getMessage().toString());
					}
					}
				});
			}
			{
				cancelar = new JButton();
				getContentPane().add(cancelar);
				cancelar.setText("Cancelar");
				cancelar.setBounds(233, 221, 99, 30);
				cancelar.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						System.out.println("cancelar.actionPerformed, event="+evt);
						AgregarProductoSeccion.getInstancia().setVisible(false);
					}
				});
			}
			pack();
			setSize(400, 300);
		} catch (Exception e) {
		    //add your error handling code here
			e.printStackTrace();
		}
	}
	
	private SeccionView[] cargarSecciones() {
		Vector<SeccionView> secciones=Delivery.getInstancia().getDeliveryView().obtenerSeccionesView();
		SeccionView[] seccionesAdd = new SeccionView[secciones.size()];
		secciones.toArray(seccionesAdd);
		
		return seccionesAdd;
	}
	
	private ProductoView[] cargarProductos() {
		Vector<ProductoView> productos=Delivery.getInstancia().obtenerProductosView();
		ProductoView[] productosAdd = new ProductoView[productos.size()];
		for (int x = 0 ; x < productos.size() ; x++) {
			productosAdd[x] = productos.get(x);
		}
		
		return productosAdd;
	}

	public void recargarSecciones(){
		ComboBoxModel jComboBoxSeccionesModel = 
				new DefaultComboBoxModel(this.cargarSecciones());
		jComboBoxSecciones.setModel(jComboBoxSeccionesModel);
	}
	
	public boolean existenSecciones() {
		return jComboBoxSecciones.getItemCount() > 0;
	}


}
